package unite;


import java.io.Serializable;

import regles.Regle;


/**
 * Classe de gestion des objets
 * @author Alexis Brasy Geoffrey Lequesne Sandrine Piriou Popov Michel
 */
public abstract class Objet extends Unite implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * Retourne le type de l'objet
     */
    public abstract TypeUnite getType();

    /**
     * Initialise l'attribut chance d'un objet : 
     * Un objet n'ayant pas de chance, elle est nulle.
     */
    public float initChance() {
        return 0.0f;
    }
	
    /**
     * Réinitialise le tour d'un objet
     * aucun comportement particulier
     */
    public void initTour(Regle r) {}

    @Override
    public int getXp() {
        return 0;
    }
	
    @Override
    public int getAttaque() {
        return 0;
    }
	
    @Override
    public int getNiveau() {
        return 0;
    }
	
    /**
     * Taille du champ de vision. N/A pour les objets.
     * @return -1
     */
    @Override
    public int getVision() {
        return -1;
    }
	
    @Override
    public void initTour() {}
	
    /**
     * Méthode à appeler en fin de tour, pour régénérer les PV en fonction des règles, si le pokémon ne s'est pas déplacé
     */
    public void regenPVfinTour() {// N/A
    }
	
}
